import datetime

import openpyxl
import pandas as pd
import sqlite3

import tools_pmc


def 通用信息导入():
    # 读取xlsx文件
    file_path = r"C:\Users\10352\Desktop\1.xlsx"
    df = pd.read_excel(file_path)

    # 连接到SQLite数据库（如果数据库不存在，将会自动创建）
    conn = sqlite3.connect(r"\\192.168.70.101\19计划管理部\01.计划\1，数据处理工具\file\config\IK-PMC-MC.db")
    c = conn.cursor()

    # 遍历DataFrame中的每一行，并将其插入到数据库中
    for index, row in df.iterrows():
        product_id = row['品号']
        general_info = row['通用信息']

        # 使用参数化查询来实现品号存在则覆盖，不存在则新增
        c.execute("UPDATE 物控信息1 SET 通用信息 = ? WHERE 品号 = ?", (general_info, product_id))

    # 提交更改并关闭连接
    conn.commit()
    conn.close()


def 节点信息处理():
    wb = openpyxl.load_workbook(r"C:\Users\10352\Desktop\1.xlsx")
    ws = wb.worksheets[0]
    wb.create_sheet(title="测试")
    ws1 = wb.worksheets[1]

    for i in range(2, ws.max_row + 1):
        temp = str(ws.cell(row=i, column=2).value).split("\n")
        for j in range(len(temp)):
            ws.cell(row=i, column=j + 3, value=temp[j])

    b = 2
    for i in range(2, ws.max_row + 1):
        a = 3
        while ws.cell(row=i, column=a).value is not None:
            ws1.cell(b, 1).value = ws.cell(i, 1).value
            temp = ws.cell(i, a).value.split("：")
            if len(temp) == 2:
                ws1.cell(b, 2).value = tools_pmc.detect_date(temp[0], 1)
                ws1.cell(b, 3).value = temp[1]
            else:
                ws1.cell(b, 2).value = datetime.datetime.now()
                ws1.cell(b, 3).value = ws.cell(i, a).value
            a += 1
            b += 1

    wb.save(r"C:\Users\10352\Desktop\1.xlsx")


def 节点信息导入():
    # 读取xlsx文件
    file_path = r"C:\Users\10352\Desktop\1.xlsx"
    df = pd.read_excel(file_path)

    # 连接到SQLite数据库（如果数据库不存在，将会自动创建）
    conn = sqlite3.connect(r"\\192.168.70.101\19计划管理部\01.计划\1，数据处理工具\file\config\IK-PMC-MC.db")
    c = conn.cursor()

    # 遍历DataFrame中的每一行，并将其插入到数据库中
    for index, row in df.iterrows():
        # 假设其余列都有默认值或者已知值，否则需要在 df 中提供这些值
        c.execute("INSERT INTO 物控信息 (品号,品名,规格,记录日期,来源,记录人,完结,备注) VALUES (?, ?, ?, ?, ?, ?, ?, ?)",
                  (row['品号'], row['品名'], row['规格'], row['记录日期'], row['来源'], row['记录人'], row['完结'], row['备注']))  # 这里仅为示例，需要根据实际情况提供完整的参数

    # 提交更改并关闭连接
    conn.commit()
    conn.close()




# if __name__ == '__main__':
#     通用信息导入()
#
# if __name__ == '__main__':
#     节点信息处理()

if __name__ == '__main__':
    节点信息导入()